home *** CD-ROM | disk | FTP | other *** search
- /* PedAccess.cc */
-
- #include <Errors.h>
- #include <Files.h>
- #include <Resources.h>
-
- #include "DGDebugging.h"
-
- #include "PedAccess.hh"
- #include "PedFSRef.hh"
-
- PedAccess::PedAccess(AccessPath inAccess)
- : mAccess(inAccess), mPrivate(false)
- {
-
- }
-
- PedAccess::~PedAccess()
- {
-
- }
-
- //================================================
-
- PedAccessRaw::PedAccessRaw(AccessPath inAccess)
- : PedAccess(inAccess)
- {
-
- }
-
- PedAccessRaw::~PedAccessRaw()
- {
- if (mPrivate && mAccess != NULL) {
- Close();
- }
- }
-
- void
- PedAccessRaw::Close()
- {
- if (!mAccess) {
- return;
- }
-
- OSErr err = ::FSClose(mAccess);
- ThrowIfOSErr_(err);
- mAccess = NULL;
- }
-
- long
- PedAccessRaw::Read(long inCount, char *inBuf)
- {
- OSErr err;
- long actualCount = inCount;
-
- err = ::FSRead(mAccess, &actualCount, inBuf);
- if (err != noErr && err != eofErr) {
- ThrowOSErr_(err);
- }
- return actualCount;
- }
-
-
- //================================================
-
- PedAccessData::PedAccessData(AccessPath inAccess)
- : PedAccessRaw(inAccess)
- {
-
- }
-
- PedAccessData::PedAccessData(const PedFSRef &inFSRef, AccessPerm inPerm)
- : PedAccessRaw(NULL)
- {
- mAccess = inFSRef.OpenData(inPerm);
- mPrivate = true;
- }
-
- PedAccessData::~PedAccessData()
- {
- }
-
- //================================================
-
- PedAccessRF::PedAccessRF(const PedFSRef &inFSRef, AccessPerm inPerm)
- : PedAccessRaw(NULL)
- {
- mAccess = inFSRef.OpenRF(inPerm);
- mPrivate = true;
- }
-
- PedAccessRF::~PedAccessRF()
- {
- }
-
- //================================================
-
- PedAccessRes::PedAccessRes(AccessPath inAccess)
- : PedAccess(inAccess)
- {
-
- }
-
- PedAccessRes::PedAccessRes(const PedFSRef &inFSRef, AccessPerm inPerm)
- : PedAccess(NULL)
- {
- mAccess = inFSRef.OpenResFile(inPerm);
- mPrivate = true;
- }
-
- PedAccessRes::~PedAccessRes()
- {
- if (mPrivate && mAccess != NULL) {
- Close();
- }
- }
-
- void
- PedAccessRes::Close()
- {
- if (!mAccess) {
- return;
- }
-
- ::CloseResFile(mAccess);
- OSErr err = ResError();
- ThrowIfOSErr_(err);
- mAccess = NULL;
- }
-